import util from '@/libs/util.js'
import NProgress from 'nprogress'
import router from '@/router'
import api from '@/api'

export default {
  namespaced: true,
  state: {
    // 用户信息
    info: {},
  },
  actions: {

    /**
     * @description 设置用户数据
     * @param {Object} context
     * @param {*} info info
     */
    async set({ state, dispatch }, info) {
      // store 赋值
      state.info = info
      // 持久化
      await dispatch('d2admin/db/set', {
        dbName: 'sys',
        path: 'user.info',
        value: info,
        user: true
      }, { root: true })
    },
    /**
     * @description 从数据库取用户数据
     * @param {Object} context
     */
    async load({ state, dispatch }) {
      // store 赋值
      state.info = await dispatch('d2admin/db/get', {
        dbName: 'sys',
        path: 'user.info',
        defaultValue: {},
        user: true
      }, { root: true })

      if (!state.info.id) {
        // 删除cookie
        util.cookies.remove('token')
        util.cookies.remove('uuid')
        util.cookies.remove('Authorization')
        // window.routerFlag = false;
        // 清空 vuex 用户信息
        await dispatch('d2admin/user/set', {}, { root: true })
        router.replace({
          name: 'login',
          query: {
            redirect: '/'
          }
        });
      }
    }
  }
}
